home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGNG_C / M2DOC.LZH / SIEVE.MOD < prev    next >
Text File  |  1987-06-21  |  873b  |  38 lines

  1. MODULE sieve;
  2.  
  3. (* $R-, $T- *)
  4.  
  5. FROM InOut  IMPORT  Read, Write, WriteString, WriteCard, WriteLn;
  6.  
  7. CONST
  8.     SIZE = 8190;
  9.     ITER = 10;
  10.  
  11. VAR
  12.     flag                    :ARRAY [0..SIZE] OF BOOLEAN;
  13.     i, j, k, count, prime   :CARDINAL;
  14.     ch                      :CHAR;
  15.  
  16. BEGIN
  17.     WriteString("Hit a key to start 10 ITERATIONS");
  18.     Read(ch);  WriteLn;
  19.     FOR i := 1 TO ITER DO
  20.         count := 0;
  21.         FOR j := 0 TO SIZE DO
  22.             flag[j] := TRUE;
  23.         END;
  24.         FOR j := 0 TO SIZE DO
  25.             IF flag[j] THEN
  26.                 prime := j+j+3;
  27.                 k := j+prime;
  28.                 WHILE k <= SIZE DO
  29.                     flag[k] := FALSE;
  30.                     INC(k,prime);
  31.                 END;
  32.                 INC(count);
  33.             END;
  34.         END;
  35.     END;
  36.     Write(7C); WriteCard(count,5);
  37. END sieve.
  38.